package com.changpei.search.service;

import com.changpei.common.result.Result;
import com.changpei.search.pojo.UserIndex;
import org.springframework.data.domain.Page;

import java.util.List;
import java.util.Map;


/**
 *
 * <p>Title : User</p>
 * <p>Description : User业务层接口</p>
 * @author weibiao
 * @date 2020年3月7日
 */
public interface UserIndexService {

    /**
     * 导入全部数据到ES
     *
     * @return
     */
    void importData();

    /**
     * 新增UserIndex至es库
     * @param userIndex
     * @return
     */
    Result<String> save(UserIndex userIndex);

    /**
     * 修改
     * @param userIndex
     * @return
     */
    Result<String> update(UserIndex userIndex);

    /**
     * 根据用户删除
     *
     * @param id
     * @return
     */
    Result<String> deleteById(Long id);

    /**
     * 根据ID查询
     *
     * @param id
     * @return
     */
    UserIndex findById(Long id);

    /**
     * 查询全部
     *
     * @return
     */
    List<UserIndex> findAll();

    /**
     * 获取关注列表
     * @param userId
     * @param pageNum
     * @param pageSize
     * @return
     */
    Page<UserIndex> getFollowers(Long userId, int pageNum, int pageSize);

    /**
     * 获取粉丝列表
     * @param userId
     * @param pageNum
     * @param pageSize
     * @return
     */
    Map<String, Object> getFans(Long userId, int pageNum, int pageSize);

    /**
     * 获取用户的关注列表
     * @param map
     * @return
     */
    Map<String, Object> getUserFollowers(Map<String, Object> map);

    /**
     * 获取用户的
     * @param map
     * @return
     */
    Map<String, Object> getUserFans(Map<String, Object> map);

    /**
     * 用户搜索
     * @param map
     * @return
     */
    Map<String, Object> userSearch(Map<String, Object> map);

}
